package com.example.dingdong.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

/**
 * @ClassName: CheckUtils
 * @Description: 校验的工具类
 * @Author luoqilin
 * @DateTime 2020-02-04 11:34:48
 */
public class CheckUtils {

	/**
	 * @Title: isEmail
	 * @Description: 校验是否是邮箱
	 * @Author luoqilin
	 * @DateTime 2020-02-04 11:34:28
	 * @param string
	 * @return
	 */
	public static boolean isEmail(String string) {
		if (string == null)
			return false;
		String regEx1 = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
		Pattern p;
		Matcher m;
		p = Pattern.compile(regEx1);
		m = p.matcher(string);
		if (m.matches())
			return true;
		else
			return false;
	}
	/**
	 * 手机号验证
	 * 
	 * @param str
	 * @return 验证通过返回true
	 */
	public static boolean isMobile(final String str) {
		Pattern pattern = null;
		Matcher matcher = null;
		boolean flag = false;
		/************ 验证手机号 ************/
		pattern = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$");
		matcher = pattern.matcher(str);
		flag = matcher.matches();
		return flag;
	}
	/**
	 * @param arr(JSONArray) 数据需要存在（key，parentId）
	 * @return List To Tree
	 */
	public static JSONArray listToTree(JSONArray arr) {
		JSONArray return_data = new JSONArray();
		// 将数组转为Object的形式，key为数组中的id
		int arrCount = arr.size();
		JSONObject hash = new JSONObject();
		for (int i = 0; i < arrCount; i++) {
			JSONObject json = (JSONObject) arr.get(i);
			hash.put(json.getString("key"), json);
		}
		// 遍历结果集
		for (int i = 0; i < arrCount; i++) {
			// 取出单条数据
			JSONObject aVal = new JSONObject();
			aVal = arr.getJSONObject(i);
			// 取出单条数据中的parentId的值
			JSONObject parentVal = new JSONObject();
			parentVal = hash.getJSONObject(aVal.getString("parentId").toString());
			// 如果记录的parentId存在，则说明它有父节点，将她添加到孩子节点的集合中
			if (parentVal != null) {
				// 检查是否有children属性
				if (parentVal.get("children") != null) {
					JSONArray ch = new JSONArray();
					ch = (JSONArray) parentVal.get("children");
					ch.add(aVal);
					parentVal.put("children", ch);
				} else {
					JSONArray ch = new JSONArray();
					ch.add(aVal);
					parentVal.put("children", ch);
				}
			} else {
				return_data.add(aVal);
			}
		}
		return return_data;
	}

}

